iT邦幫忙

2025 iThome 鐵人賽

DAY 9
1

牧場主今日工作

經過一週的基礎建設,我們終於要開始建造數位牧場的控制中心了!今天我們要部署 RKE2 管理叢集,這是 Rancher 的心臟,所有的牧場管理工作都將從這裡開始。就像蓋房子要先打地基一樣,有了穩固的 RKE2 叢集,我們才能在上面安裝 Rancher 管理平台!

技術背景與概念

什麼是 RKE2?

https://ithelp.ithome.com.tw/upload/images/20250824/20141794Dv2ThZvCjY.png

RKE2(Rancher Kubernetes Engine 2) 是 Rancher 推出的下一代 Kubernetes 發行版,專為企業級環境設計。

RKE2 的特點:

  • 安全性優先:內建 CIS Kubernetes Benchmark 合規性
  • FIPS 140-2 認證:符合美國政府安全標準
  • 簡化部署:一個指令完成安裝
  • 高可用架構:內建 etcd 和控制平面高可用
  • 企業級支援:SUSE 官方支援的 Kubernetes 發行版

RKE2 vs K3s vs 其他發行版

選擇 RKE2 的原因:

特性 RKE2 K3s 原生 K8s
目標用途 企業級生產環境 輕量級/邊緣運算 通用 Kubernetes
安全性 CIS 合規內建 基本安全 需手動配置
部署複雜度 簡單 極簡單 複雜
資源需求 中等 極低 中高
Rancher 整合 完美整合 良好支援 需額外配置

前置準備與環境檢查

連線到 rancher-server-1

# 使用 SSH 連線到 rancher-server VM
ssh calvin@192.168.0.116

# 確認系統資訊
cat /etc/os-release
uname -a

# 檢查系統資源
free -h
df -h

系統需求確認

# 檢查 CPU 核心數(建議至少 2 核心)
nproc

# 檢查記憶體(建議至少 4GB)
free -h

# 檢查磁碟空間(建議至少 20GB)
df -h /

# 檢查網路連線
ping -c 3 8.8.8.8
curl -I https://get.rke2.io

RKE2 安裝部署

下載並安裝 RKE2

# 下載 RKE2 安裝腳本
curl -sfL https://get.rke2.io --output install.sh

# 設定執行權限
chmod +x install.sh

# 安裝指定版本的 RKE2
sudo INSTALL_RKE2_VERSION=v1.32.7+rke2r1 INSTALL_RKE2_CHANNEL=stable ./install.sh

建立 RKE2 配置檔

# 建立基本配置檔
sudo tee /etc/rancher/rke2/config.yaml << EOF
# data-dir: 預設在 /var/lib/rancher/rke2

# 停用不需要的組件
# disable:
#   - rke2-ingress-nginx

# CNI 設定(預設使用 Canal)
# cni:
#   - canal

# TLS 配置
tls-san:
  - 192.168.0.116
  - ithome-rancher.duckdns.org
  - rancher.ithome-rancher.duckdns.org
EOF

啟動 RKE2 服務

啟動並設定開機自動啟動

# 啟用 RKE2 server 服務
sudo systemctl enable rke2-server

# 啟動 RKE2 server
sudo systemctl start rke2-server

# 檢查服務狀態
sudo systemctl status rke2-server

監控啟動過程

# 即時監控 RKE2 啟動日誌
sudo journalctl -u rke2-server -f

# 查看詳細啟動日誌
sudo journalctl -u rke2-server --no-pager

# 檢查 RKE2 程序
ps aux | grep rke2

啟動成功的標誌:

INFO[2025-08-23T10:30:45.123456789Z] Starting RKE2 server
INFO[2025-08-23T10:30:46.234567890Z] Running kube-apiserver
INFO[2025-08-23T10:30:47.345678901Z] Running kube-scheduler  
INFO[2025-08-23T10:30:48.456789012Z] Running kube-controller-manager
INFO[2025-08-23T10:30:49.567890123Z] Running etcd
INFO[2025-08-23T10:31:10.678901234Z] Node token is available at /var/lib/rancher/rke2/server/token

驗證叢集部署

設定 kubectl

# 建立 kubectl 符號連結
sudo ln -sf /var/lib/rancher/rke2/bin/kubectl /usr/local/bin/kubectl

# 複製 kubeconfig 到用戶目錄
mkdir -p ~/.kube
sudo cp /etc/rancher/rke2/rke2.yaml ~/.kube/config
sudo chown $(id -u):$(id -g) ~/.kube/config

# 驗證權限
ls -la ~/.kube/config

基本叢集驗證

# 檢查節點狀態
kubectl get nodes -o wide

# 檢查系統 Pod
kubectl get pods -A

# 檢查叢集資訊
kubectl cluster-info

# 檢查叢集健康狀況
kubectl get componentstatuses

預期輸出範例

# kubectl get nodes -o wide
NAME              STATUS   ROLES                       AGE   VERSION
rancher-server-1  Ready    control-plane,etcd,master   5m    v1.32.7+rke2r1

# kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS    RESTARTS
kube-system   canal-xxxxx                              2/2     Running   0
kube-system   coredns-xxxxx                            1/1     Running   0
kube-system   etcd-rancher-server-1                    1/1     Running   0
kube-system   kube-apiserver-rancher-server-1          1/1     Running   0
kube-system   kube-controller-manager-rancher-server-1 1/1     Running   0
kube-system   kube-scheduler-rancher-server-1          1/1     Running   0

儲存叢集認證資訊

保存重要憑證和令牌

# 檢視節點令牌(新增節點時需要)
sudo cat /var/lib/rancher/rke2/server/node-token

# 儲存到安全位置
sudo cp /var/lib/rancher/rke2/server/node-token ~/rke2-node-token.txt
sudo chown $(id -u):$(id -g) ~/rke2-node-token.txt

# 檢查 kubeconfig 檔案
sudo cat /etc/rancher/rke2/rke2.yaml | head -20

故障排除

常見問題與解決方案

1. 服務啟動失敗

# 檢查詳細錯誤日誌
sudo journalctl -u rke2-server --no-pager -l

# 檢查連接埠是否被占用
sudo netstat -tulpn | grep -E "(6443|9345|10250)"

2. 節點狀態為 NotReady

# 檢查 CNI 插件
kubectl get pods -n kube-system | grep canal

# 檢查 kubelet 日誌
sudo journalctl -u rke2-server | grep kubelet

# 重新啟動服務
sudo systemctl restart rke2-server

3. kubectl 無法連線

# 檢查 kubeconfig 權限
ls -la ~/.kube/config

# 檢查 API server 是否運行
sudo netstat -tulpn | grep 6443

今日總結與明日預告

今天我們成功建立了數位牧場的控制中心!RKE2 管理叢集已經準備就緒,所有的核心組件都在正常運行。

重點回顧:

  • 了解 RKE2 的企業級特性和優勢
  • 完成系統需求檢查和環境準備
  • 安裝並配置 RKE2 單節點叢集
  • 驗證叢集功能和網路連通性
  • 建立 kubectl 管理環境
  • 學會基本的故障排除技巧

明天我們將在這個穩固的 RKE2 叢集上安裝 Rancher Server,讓我們的數位牧場管理平台華麗登場!屆時你就能透過圖形化介面管理整個 Kubernetes 生態系統了。


💡 牧場主小提示:RKE2 的日誌非常詳細,如果遇到問題記得善用 journalctl -u rke2-server -f 來即時監控!另外,RKE2 預設會在 /var/lib/rancher/rke2 建立很多重要檔案,記得定期備份這個目錄!


上一篇
Day 8: SSL 憑證申請與設定 - Let's Encrypt 免費 SSL 憑證
下一篇
Day 10: Rancher Server 華麗登場
系列文
牧場主的 K8s 放牧日記20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言